package com.um2.compression.grol;

import java.awt.BorderLayout;

import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;

public class PanneauCentre extends JPanel {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	private FenetreApplication fenetre;

	private JTabbedPane onglets = new JTabbedPane(JTabbedPane.NORTH) ;
	private PanneauImageOriginale imageOriginale = new PanneauImageOriginale(this) ;
	
	private PanneauImageLuminance imageNiveauxLuminance = new PanneauImageLuminance(this) ;
	private PanneauImageCrominanceRouge imageCromonanceRouge = new PanneauImageCrominanceRouge(this) ;
	private PanneauImageCrominanceBleu imageCrominanceBleu = new PanneauImageCrominanceBleu(this) ;
	
	private PanneauImageFinaleLuminance imageFinaleLuminance = new PanneauImageFinaleLuminance(this) ;
	private PanneauImageFinaleLuminanceRouge imageFinaleLuminanceRouge = new PanneauImageFinaleLuminanceRouge(this) ;
	private PanneauImageFinaleCrominanceRouge imageFinaleCrominanceRouge = new PanneauImageFinaleCrominanceRouge(this) ;
	private PanneauImageFinaleCrominanceRougeRouge imageFinaleCrominanceRougeRouge = new PanneauImageFinaleCrominanceRougeRouge(this) ;
	private PanneauImageFinaleCrominanceBleu imageFinaleCrominanceBleu = new PanneauImageFinaleCrominanceBleu(this) ;
	private PanneauImageFinaleCrominanceBleuRouge imageFinaleCrominanceBleuRouge = new PanneauImageFinaleCrominanceBleuRouge(this) ;
	
	
	
	private PanneauImageFinale imageFinale = new PanneauImageFinale(this) ;
	private PanneauImageFinaleDegrade imageFinaleDegrade = new PanneauImageFinaleDegrade(this) ;
	private PanneauImageFinaleDegradeImage imageFinaleDegradeImage = new PanneauImageFinaleDegradeImage(this) ;
	

	private PanneauImageOuverteL imageOuverteL = new PanneauImageOuverteL(this) ;
	private PanneauImageOuverteCr imageOuverteCr = new PanneauImageOuverteCr(this) ;
	private PanneauImageOuverteCb imageOuverteCb = new PanneauImageOuverteCb(this) ;
	private PanneauImageOuverte imageOuverte = new PanneauImageOuverte(this) ;

//	private PanneauImageContour imageContour = new PanneauImageContour(this) ;
//	private PanneauImageFloue imageFloue = new  PanneauImageFloue(this) ;
	
	
	
	public PanneauCentre(FenetreApplication fen) {
		this.fenetre = fen ;
		
		String saveTitle = this.fenetre.getTitle() ;
		this.fenetre.setTitle("initialisation des onglets") ;
		
		this.setLayout(new BorderLayout()) ;
		this.add(onglets, BorderLayout.CENTER) ;
		
		
		onglets.add("image",new JScrollPane(imageOriginale)) ;
		
		
		onglets.add("luminance",new JScrollPane(imageNiveauxLuminance)) ;
		onglets.add("Cr (rouge)",new JScrollPane(imageCromonanceRouge)) ;
		onglets.add("Cb (bleu)",new JScrollPane(imageCrominanceBleu)) ;
		
		onglets.add("luminance (modifie)",new JScrollPane(imageFinaleLuminance)) ;
		onglets.add("luminance (masque)",new JScrollPane(imageFinaleLuminanceRouge)) ;
		onglets.add("Cr (modifiee)",new JScrollPane(imageFinaleCrominanceRouge)) ;
		onglets.add("Cr (masque)",new JScrollPane(imageFinaleCrominanceRougeRouge)) ;
		onglets.add("Cb (modifiee)",new JScrollPane(imageFinaleCrominanceBleu)) ;
		onglets.add("Cb (masque)",new JScrollPane(imageFinaleCrominanceBleuRouge)) ;
		
		onglets.add("finale",new JScrollPane(imageFinale)) ;
		onglets.add("finale (masque)",new JScrollPane(imageFinaleDegrade)) ;
		onglets.add("finale sans pixels additionnels",new JScrollPane(imageFinaleDegradeImage)) ;
		
		onglets.add("ouverture L",new JScrollPane(imageOuverteL)) ;
		onglets.add("ouverture Cr",new JScrollPane(imageOuverteCr)) ;
		onglets.add("ouverture Cb",new JScrollPane(imageOuverteCb)) ;

		onglets.add("image ouverte",new JScrollPane(imageOuverte)) ;
		
//		onglets.add("contour",new JScrollPane(imageContour)) ;
//		onglets.add("flou",new JScrollPane(imageFloue)) ;
		
		this.fenetre.setTitle(saveTitle) ;

	}



	public PanneauImageCrominanceBleu getPanneauImageCrominanceBleu() {
		return imageCrominanceBleu;
	}



	public void setPanneauImageCrominanceBleu(PanneauImageCrominanceBleu imageCrominanceBleu) {
		this.imageCrominanceBleu = imageCrominanceBleu;
	}



	public PanneauImageCrominanceRouge getPanneauImageCromonanceRouge() {
		return imageCromonanceRouge;
	}

//	public PanneauImageFloue getPanneauImageFloue() {
//		return imageFloue;
//	}

//	public PanneauImageContour getPanneauImageContour() {
//		return imageContour;
//	}
	
	public PanneauImageFinaleLuminance getPanneauImageFinaleLuminance() {
		return imageFinaleLuminance;
	}
	
	public PanneauImageFinaleLuminanceRouge getPanneauImageFinaleLuminance2() {
		return imageFinaleLuminanceRouge;
	}
	

	public PanneauImageFinaleCrominanceRouge getPanneauImageFinaleCrominanceRouge() {
		return imageFinaleCrominanceRouge;
	}
	
	public PanneauImageFinaleCrominanceRougeRouge getPanneauImageFinaleCrominanceRougeRouge() {
		return imageFinaleCrominanceRougeRouge;
	}
	

	public PanneauImageFinaleCrominanceBleu getPanneauImageFinaleCrominanceBleu() {
		return imageFinaleCrominanceBleu;
	}
	
	public PanneauImageFinaleCrominanceBleuRouge getPanneauImageFinaleCrominanceBleuRouge() {
		return imageFinaleCrominanceBleuRouge;
	}
	
	public PanneauImageFinale getPanneauImageFinale() {
		return imageFinale;
	}
	
	public PanneauImageFinaleDegrade getPanneauImageFinaleDegrade() {
		return imageFinaleDegrade;
	}
	
	public PanneauImageFinaleDegradeImage getPanneauImageFinaleDegradeImage() {
		return imageFinaleDegradeImage;
	}
	
	public PanneauImageOuverte getPanneauImageOuverte() {
		return imageOuverte;
	}
	
	public PanneauImageOuverteL getPanneauImageOuverteL() {
		return imageOuverteL;
	}
	
	public PanneauImageOuverteCb getPanneauImageOuverteCb() {
		return imageOuverteCb;
	}
	
	public PanneauImageOuverteCr getPanneauImageOuverteCr() {
		return imageOuverteCr;
	}
	


	public void setPanneauImageCromonanceRouge(PanneauImageCrominanceRouge imageCromonanceRouge) {
		this.imageCromonanceRouge = imageCromonanceRouge;
	}





	public PanneauImageOriginale getPanneauImageOriginale() {
		return imageOriginale;
	}





	public JTabbedPane getOnglets() {
		return onglets;
	}



	public void setOnglets(JTabbedPane onglets) {
		this.onglets = onglets;
	}



	public void rafraichir() {
		this.repaint() ;
	}



	public PanneauImageLuminance getPanneauLuminance() {
		return imageNiveauxLuminance;
	}



	public FenetreApplication getFenetre() {
		return fenetre;
	}



	public JTabbedPane getTabs() {
		return onglets ;
	}


	
	
	
}
